c2981d2fd8c13f8ce5ab96bca1247daecf34ca05,languages/xml/xml/source_gen/jetbrains/mps/core/xml/actions/QueriesGenerated.java,QueriesGenerated,sideTransform_ActionsFactory_XmlValuePart_3080189811177408103,#IOperationContext#SideTransformActionsBuilderContext#,400

Before Change


  public static List<INodeSubstituteAction> sideTransform_ActionsFactory_XmlValuePart_3080189811177408103(final IOperationContext operationContext, final SideTransformActionsBuilderContext _context) {
    List<INodeSubstituteAction> result = ListSequence.fromList(new ArrayList<INodeSubstituteAction>());
    {
      SNode concept = SConceptOperations.findConceptDeclaration("jetbrains.mps.core.xml.structure.XmlValuePart");
      Iterable<SNode> concepts;
      concepts = SConceptOperations.getAllSubConcepts(concept, _context.getModel(), operationContext.getScope());
      for (final SNode subconcept : concepts) {
        if (!(SNodeOperations.isInstanceOf(subconcept, "jetbrains.mps.lang.structure.structure.ConceptDeclaration"))) {
          continue;
        }
        if (SConceptPropertyOperations.getBoolean(subconcept, "abstract")) {
          continue;
        }
        ListSequence.fromList(result).addElement(new AbstractSideTransformHintSubstituteAction(subconcept, _context.getSourceNode()) {
          public SNode doSubstitute(String pattern) {
            SNode result = SNodeFactoryOperations.createNewNode(NameUtil.nodeFQName(subconcept), null);
            return SNodeOperations.insertNextSiblingChild(_context.getSourceNode(), result);
          }
        });
      }
    }
    return result;

After Change


    List<INodeSubstituteAction> result = ListSequence.fromList(new ArrayList<INodeSubstituteAction>());
    {
      final String[] lastPattern = new String[1];
      List<INodeSubstituteAction> list = ModelActions.createChildSubstituteActions(_context.getSourceNode(), null, SConceptOperations.findConceptDeclaration("jetbrains.mps.core.xml.structure.XmlValuePart"), new AbstractChildNodeSetter() {
        public SNode doExecute(SNode parentNode, SNode oldChild, SNode newChild, IScope p3) {
          return substitute(newChild, lastPattern[0]);
        }

        private SNode substitute(SNode result, String pattern) {
          return SNodeOperations.insertNextSiblingChild(_context.getSourceNode(), result);
        }
      }, operationContext);
      for (final INodeSubstituteAction action : list) {
        ListSequence.fromList(result).addElement(new NodeSubstituteActionWrapper(action) {
          @Override
          public SNode substitute(@Nullable EditorContext context, String pattern) {
            lastPattern[0] = pattern;
            return super.substitute(context, pattern);
          }
        });
      }
    }
    return result;